package main

import "fmt"

func main() {
	// 使用for循环完成下面的案例请编写一个程序，可以接收一个整数,表示层数，打印出金字塔

	// 编程思路
	// 1．打印一个矩形
	/*
	***
	***
	***
	 */

	// 2. 打印半个金字塔
	/*
	*		1 个 *
	**  2 个 *
	*** 3 个 *
	 */

	// 3. 打印整个金字塔
	/*
			*		1层	1 个 *	规律：2 * 层数 - 1	空格	2	规律	总层数	-	当前层数
		 ***  2层	3 个 *	规律：2 * 层数 - 1	空格	1	规律	总层数	-	当前层数
		***** 3层	5 个 *	规律：2 * 层数 - 1	空格	0	规律	总层数	-	当前层数
	*/

	// 4. 将层数做成一个变量
	// var totalLevel int

	// 5. 打印空心金字塔
	/*
			*
		 * *
		*****
		分析:在我们给每行打印*号时,需要考虑是打印*还是打印空格
		我们的分析的结果是，每层的第一个和最后一个是打印*，其它就应该是空的，即输出空格
		我们还分析到一个例外情况,最后层(底层)是全部打*
	*/

	/* // i 表示层数
	for i := 0; i < 3; i++ {
		// j 表示每层打印多少 *
		for j := 0; j < 3; j++ {
			fmt.Print("*")
		}
		fmt.Println()
	} */

	/* for i := 1; i <= 3; i++ {
		for j := 0; j < i; j++ {
			fmt.Print("*")
		}
		fmt.Println()
	} */

	/* for i := 1; i <= 3; i++ {
		for k := 1; k <= 3-i; k++ {
			fmt.Print(" ")
		}
		for j := 1; j <= 2*i-1; j++ {
			fmt.Print("*")
		}
		fmt.Println()
	} */

	/* var totalLevel int = 10

	for i := 1; i <= totalLevel; i++ {
		for k := 1; k <= totalLevel-i; k++ {
			fmt.Print(" ")
		}
		for j := 1; j <= 2*i-1; j++ {
			fmt.Print("*")
		}
		fmt.Println()
	} */

	/* var totalLevel int = 10

	for i := 1; i <= totalLevel; i++ {
		for k := 1; k <= totalLevel-i; k++ {
			fmt.Print(" ")
		}
		for j := 1; j <= 2*i-1; j++ {
			if j == 1 || j == 2*i-1 || i == totalLevel {
				fmt.Print("*")
			} else {
				fmt.Print(" ")
			}
		}
		fmt.Println()
	} */

	// 打印空心菱形

	// 打印九九乘法表
	var num int = 9

	for i := 1; i <= num; i++ {
		for j := 1; j <= i; j++ {
			fmt.Printf("%v * %v = %v     ", j, i, i*j)
		}
		fmt.Println()
	}

	/*
		1、实现判断一个整数，属于哪个范围:大于0; 小于0; 等于0
		2、判断一个年份是否为闰年	★
		3、判断一个整数是各是水仙花数，所谓水仙花数是指一个3位数，其各个位上数字立方和等于其本身。例如: 153= 1*1*1＋3*3*3＋5*5*5	★
		4、写出输出结果。
		m,n := 0,3
		if(m>0) {
			if(n>2) {
				fmt.Println ("A")
			} else {
				fmt.Println ("B")
			}
		}


		5、保存用户名和密码，判断用户名是否为“张三”，密码是否为1234，如果是，提示登录成功，否则提示登录失败		★
		6、编写程序，根据输入的月份和年份，求出该月的天数（1-12)【switch题目】	★
		1/3/5/7/8/10/12 -—-—31
		2——29/28
		其他一30

		【选作】1、开发一款软件，根据公式〈身高-108）*2=体重，可以有10斤左右的浮动。来观察测试者体重是否合适。
		【选作】2、判断此考试成绩为什么等级。【switch题目_和 if else if 多分支】
		90-100之间为优秀，80-89之间为优良，70-79之间为良好，
		6o-69之间为及格,60分以下为不及格。

		【选作】3、有两个数a和b，如果a能被b整除或者a加b大于1000，则输出a;否则输出b。
		【选作】4、实现对三个整数进行排序，输出时按照从小到大的顺序输出。

	*/

}
